1. Field of the Invention
This invention relates generally to computer file control systems, and more specifically to a flexible system for accessing computer files and data therein according to user-designated criteria.
2. Description of Related Art
Many currently-existing computer file control systems employ a hierarchical filing structure. This system emulates commonly-used paper filing systems, but is more general and is capable of more extensive use. Thus, for example, in a paper filing system, a filing cabinet may contain 4 or 5 drawers. Each drawer may contain perhaps a dozen or so hanging files and each file may contain two or three file folders. Typically, a hanging file can only hold a very small number of file folders before it becomes unmanageable, so that a new hanging file needs to be started.
A typical computer system organizes data into files (analogous to papers in a paper filing system) and directories (analogous to file folders and hanging files). Indeed, in graphically-oriented computer systems, directories are sometimes known as "folders." Directories may contain other directories (also referred to as subdirectories) and files.
FIG. 1 shows a simplified typical hierarchical tree-type directory structure. This structure is called "tree" because it looks like an upside-down tree, with the base, or "root" of the tree at the top. Subdirectories are often referred to as "branches" of the tree, and files are often referred to as leaves of the tree.
In FIG. 1, the root directory 100 contains a number of subdirectories 102-112 and files 114-122. The subdirectories 102-112 may contain other subdirectories and files, and so on.
In typical use, directories often contain files having similar kinds of data. Also, the name of the directory is typically selected to be descriptive of the kinds of files and directories therein. For example, a WPDOCS directory 102 might contain wordprocessing documents and directories for holding specific categories of such documents. For example, a LETTERS directory 108 may contain only files which are letters: "LETTER TO AUTO CLUB" 114, "LETTER TO BOWLING LEAGUE MEMBERS" 116, "LETTER TO MR. CHISOLM" 118, "LETTER TO MR. DITHERS" 120, and "LETTER TO MS. ENGELMAN" 122. Memos could be stored in a "MEMOS" subdirectory 110, patent applications in an "APPLICATION" subdirectory 112, etc.
Custom structures of such directories are created so as to make the storing and retrieval of files convenient. If the number of files to be stored is small and the number of different file kinds is either small or very well defined, this type of file storage structure works well. However, several problems arise when the number of files becomes large, or if the file categories are not well-defined. In such cases, the hierarchical filing structure becomes very cumbersome to use for the following reasons:
1. The tree becomes quite deep, and so it takes more time to get to the end of any branch. PA1 2. It becomes more difficult for the user to decide where to store a particular file. PA1 1. The words inside a document often do not identify the type of document. For example, a document which is a letter generally does not contain the word "letter". Thus, a search for all documents that are letters will only identify documents which contain the word "letter". Similarly, it is very difficult to identify words which occur in all letters. Furthermore, this technique requires the user to remember precise words appearing in the file. This may be especially difficult for older files for which the user cannot recall the precise contents. PA1 2. In applications where such a method might be most useful, the search is very time consuming. If the number of files is very large, the concordance list also is very large. A partial solution to this has been to have the program continually work in the background updating the concordance list as changes are made in the files. However, this process generally disrupts a user's activity. PA1 3. Many files (such as binary files) contain information which is in a form that is not easily interpreted by the human mind. Such files cannot be stored and retrieved by these methods. PA1 4. In preparing a search filter, a user must type the word or words targeted in the search. In such situations, the user commonly mistypes or use a different inflection, spelling or grouping of the key words. Without using the precise words as they appear in the files, a search has an even lower probability of success. PA1 5. Because a user may change the contents of documents, the index of words must be constantly updated. This process is time consuming and distracting. In contrast, the topical description of a document changes very little, if at all, during its lifetime.
As a result, finding particular files becomes harder and harder. Frequently, the user is not able to clearly and unambiguously associate a desired file with any one directory. In fact, the user often associates a file with several subdirectories. This happens both when a file is being saved and when it is being retrieved. The same problem arises in paper filing systems. Quite often a document may logically belong within many different folders, with the result that it is difficult to find a desired document once the document has been filed.
Clearly, a hierarchical topic-oriented file structure is too rigid for many applications where information must be organized into files. It has been found that users generally think in terms of overlapping categories or descriptions of file content, rather than in very strictly-defined, non-overlapping topics.
For example, referring now to FIG. 2, a root directory 200 has five subdirectories 202-210. In this example, subdirectory 202 has three "sub"-subdirectories 212-216, subdirectory 204 has two "sub"-subdirectories 218-220, subdirectory 206 has one "sub"-subdirectory 222, and subdirectory 208 has one "sub"-subdirectory 224. A file might logically belong in subdirectory 204, sub-subdirectory 214, sub-subdirectory 216, and sub-subdirectory 224. Similarly, another file might logically belong in subdirectory 206 and subdirectory 208.
Therefore, what is really needed are "hybrid" logical directories or folders, which contain those files whose content overlaps more than one physical directory. Thus, in the present example, a first hybrid logical directory 226 would contain each file that logically belongs in subdirectory 206 and subdirectory 208. Similarly, a second hybrid logical directory 228 would contain each file that logically belongs in subdirectory 204, sub-subdirectory 21 4, sub-subdirectory 21 6, and sub-subdirectory 224.
In the typical hierarchical directory structure illustrated in FIG. 1, "hybrid" directories are not possible. Thus, it is very desirable to provide a method for accessing files consonant with the way users think of them, and not limited to how such files are stored in the computer.
Some systems have been developed to overcome the rigidity of typical hierarchial directory structures, but these systems have limitations. In one such method, all the words in a file are indexed and a concordance list associated with each file is created. The user then may search for files by file word content by defining "search filters", which are search terms in logically defined combinations (e.g., a search filter comprising "Smith" AND "tooling" would locate all documents having both the word "Smith" and the word "tooling"). However, this indexing method has the following shortcomings:
Because of these problems, the above methods are generally used in only "last resort" searches. Thus, the user is left to negotiate the hierarchical directory structure.
Databases and outlining programs also provide methods for data storage, retrieval, or re-organization. Databases may be created using relational techniques. In relational databases, the relationships between data are typically included in the database structure. Searches in a relational database may be made by creating a search of the relations. However, database searches are usually restricted in two ways: by the field of each data element and by the content of each field. In outlining programs and other thought-organization programs, the data is generally required to be hierarchically organized at the time of data entry.
Accordingly, it would be desirable to provide a method for accessing files which provides intuitive access by user-defined topics. Such a solution should provide: easy access to a large number of files and to files having overlapping categories; simple access to files stored in a hierarchical file system without the necessity of sorting through multiple levels; access to files using predefined categories descriptive of the contents of the files; access to files which permits a user to create a search filter of categories of files using precise category names to which the files belong; and a method of accessing files which is unaffected by changes in file contents.
The present invention provides such a method.